#ifndef DTU_INI_H
#define DTU_INI_H

#include "dtu_common.h"

/* INI文件处理函数 */

/**
 * @brief 从INI文件读取字符串值
 * @param filename INI文件路径
 * @param section 节名
 * @param key 键名
 * @param default_value 默认值
 * @param buffer 输出缓冲区
 * @param buffer_size 缓冲区大小
 * @return DTU_OK 成功，其他值失败
 */
dtu_error_t dtu_ini_get_string(const char* filename, const char* section, const char* key, 
                               const char* default_value, char* buffer, size_t buffer_size);

/**
 * @brief 从INI文件读取整数值
 * @param filename INI文件路径
 * @param section 节名
 * @param key 键名
 * @param default_value 默认值
 * @return 读取到的整数值
 */
int dtu_ini_get_int(const char* filename, const char* section, const char* key, int default_value);

/**
 * @brief 从INI文件读取布尔值
 * @param filename INI文件路径
 * @param section 节名
 * @param key 键名
 * @param default_value 默认值
 * @return 读取到的布尔值
 */
bool dtu_ini_get_bool(const char* filename, const char* section, const char* key, bool default_value);

/**
 * @brief 向INI文件写入字符串值
 * @param filename INI文件路径
 * @param section 节名
 * @param key 键名
 * @param value 值
 * @return DTU_OK 成功，其他值失败
 */
dtu_error_t dtu_ini_set_string(const char* filename, const char* section, const char* key, const char* value);

/**
 * @brief 向INI文件写入整数值
 * @param filename INI文件路径
 * @param section 节名
 * @param key 键名
 * @param value 值
 * @return DTU_OK 成功，其他值失败
 */
dtu_error_t dtu_ini_set_int(const char* filename, const char* section, const char* key, int value);

/**
 * @brief 向INI文件写入布尔值
 * @param filename INI文件路径
 * @param section 节名
 * @param key 键名
 * @param value 值
 * @return DTU_OK 成功，其他值失败
 */
dtu_error_t dtu_ini_set_bool(const char* filename, const char* section, const char* key, bool value);

/**
 * @brief 检查INI文件是否存在
 * @param filename INI文件路径
 * @return true 存在，false 不存在
 */
bool dtu_ini_file_exists(const char* filename);

/**
 * @brief 创建默认INI文件
 * @param filename INI文件路径
 * @return DTU_OK 成功，其他值失败
 */
dtu_error_t dtu_ini_create_default(const char* filename);

#endif /* DTU_INI_H */
